package com.caipos.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.caipos.actor.common.data.id.RuleChainId;
import com.caipos.actor.common.data.id.RuleNodeId;
import com.caipos.actor.common.data.relation.Relation;
import com.caipos.actor.common.data.rule.RuleChain;
import com.caipos.actor.common.data.rule.RuleNode;

import java.util.List;

public interface RuleChainService {
    RuleChain getRuleChainById(String id);

    List<RuleChain> getAllRuleChains();

    IPage<RuleChain> getRuleChainsByPage(Page<RuleChain> page);

    boolean saveRuleChain(RuleChain ruleChain);

    boolean updateRuleChain(RuleChain ruleChain);

    boolean deleteRuleChainById(String id);

    List<RuleChain> getRuleChainsByTenantId(String tenantId);

    List<Relation> getRuleNodeRelations(RuleNode ruleNode);

    List<RuleNode> getRuleChainNodesByRuleChainId(String ruleChainId);
}